﻿/**
 *	(C) 2014 Yuanjj
 *
 *	define ui protocal thread class
 *
 *	histroy
 * 		2014-08-07	yuanjj	- create the file
 */

#ifndef _UI_THREAD_H_
#define _UI_THREAD_H_

#include 	"typedef.h"
#include	"../base_thread.h"

class ui_thread : public base_thread
{
public:
    ui_thread();
    ~ui_thread();

protected:
    /**
     *	deal protocal recv from the ui tunnel
     */
    pem_error_t		deal_protocal( pem_s8_t* pdata, pem_u32_t size );

protected:
    /**********************************************************
     *	user data
     **********************************************************/
    /**
     *	user login
     */
    pem_error_t		_user_login( pem_s8_t* pdata, pem_s32_t size );

    /**********************************************************
     *	host data
     **********************************************************/
    /**
     *	update host
     */
    pem_error_t		_update_host( pem_s8_t* pdata, pem_s32_t size );

    /**********************************************************
     *	tunnel data
     **********************************************************/
    /**
     *	update tunnel type to ui
     */
    pem_error_t		_update_tunnel_type( pem_s8_t* pdata, pem_s32_t size );

    /**
     *	update tunnel to ui
     */
    pem_error_t		_update_tunnel( pem_s8_t* pdata, pem_s32_t size );

    /**********************************************************
     *	device data
     **********************************************************/
    /**
     *	update device type to ui
     */
    pem_error_t		_update_device_type( pem_s8_t* pdata, pem_u32_t size );

    /**
     *	update device to ui
     */
    pem_error_t		_update_device( pem_s8_t* pdata, pem_u32_t size );

    /**
     *	update protocal to ui
     */
    pem_error_t		_update_protocal( pem_s8_t* pdata, pem_u32_t size );

    /**********************************************************
     *	alarm data
     **********************************************************/
    /**
     *	update alarm to ui
     */
    pem_error_t		_update_alarm( pem_s8_t* pdata, pem_u32_t size );

    /**********************************************************
     *	event data
     **********************************************************/
    /**
     *	update event type to ui
     */
    pem_error_t		_update_event_type( pem_s8_t* pdata, pem_u32_t size );

    /**
     *	update event to ui
     */
    pem_error_t		_update_event( pem_s8_t* pdata, pem_u32_t size );

    /**********************************************************
     *	scene data
     **********************************************************/
    /**
     *	update scene to ui
     */
    pem_error_t		_update_scene( pem_s8_t* pdata, pem_u32_t size );

    /**
     *	set new scene to ui
     */
    pem_error_t		_new_scene( pem_s8_t* pdata, pem_u32_t size );

    /**
     *	update frame to ui
     */
    pem_error_t		_update_frame( pem_s8_t* pdata, pem_u32_t size );
};

#endif // _UI_THREAD_H_
